package usuario;

import javax.persistence.TypedQuery;

import contato.Contato;

import daoGenerico.DAOGenerico;

import erros.UsuarioInexistente;
import erros.UsuarioVazio;

public class UsuarioDAO extends DAOGenerico<Usuario> implements IUsuarioDAO {

	@Override
	public Usuario efetuarLogin(String login, String senha) throws UsuarioInexistente {
		try {
			String jpql = "FROM Usuario WHERE login = :log and senha = :sen";
			TypedQuery<Usuario> query = (TypedQuery<Usuario>) getSessao().createSQLQuery(jpql);
			query.setParameter("log", login);
			query.setParameter("sen", senha);
			return query.getSingleResult();
		} catch (Exception e) {
			throw new UsuarioInexistente();
		}		
	}
	
	public boolean usuarioExiste() throws UsuarioVazio{
		String jpql = "FROM Usuario";
		TypedQuery<Usuario> query = (TypedQuery<Usuario>) getSessao().createSQLQuery(jpql);
		try {
			query.setMaxResults(1).getSingleResult();
			return true;
		} catch (Exception e) {
			throw new UsuarioVazio();
		}
	}
}
